package com.game.modular.game.playerInfo.domain;

import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.extension.activerecord.Model;
import java.io.Serializable;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.*;

/**
 * 玩家信息(PlayerRank)表实体类
 *
 * @author cxy
 * @since 2024-09-09 18:30:36
 */
@ApiModel("玩家信息")
@Data
@AllArgsConstructor
@NoArgsConstructor
@Builder
@EqualsAndHashCode(callSuper = true)
@SuppressWarnings("serial")
public class PlayerRank extends Model<PlayerRank> {// swagger2,mybatis-plus
    ///////////////////////////////////////////////////////////////////////////////////////////////////////// 生成实体字段
    @TableId(type = IdType.INPUT)
    @ApiModelProperty("账号uid")
    private Long uid;
    
    @ApiModelProperty("等级")
    private Integer grade;
    
    @ApiModelProperty("当前等级经验")
    private Long exp;
    
    @ApiModelProperty("段位")
    private Long rank;
    
    @ApiModelProperty("胜点")
    private Long rankIntegral;
    
    ///////////////////////////////////////////////////////////////////////////////////////////////////////// 序列化版本号
    @TableField(exist = false)
    private static final long serialVersionUID = 365766022820458633L;
    /////////////////////////////////////////////////////////////////////////////////////////////////////////// 获取主键值
    @Override
    public Serializable pkVal() {
        return this.uid;
    }
    ///////////////////////////////////////////////////////////////////////////////////////////////////////// 非数据库字段
    /////////////////////////////////////////////////////////////////////////////////////////////////////////    领域业务
    public void gainExperience(long restValue) {
        if (exp==null){
            exp = 0L;
        }
        this.setExp(this.getExp()+ restValue);
    }
    public void gainRankIntegral(long restValue) {
        if (rankIntegral==null){
            rankIntegral = 1000L;
        }
        rankIntegral = rankIntegral + restValue;
    }
}

